package com.spring.cloud.msclient1.interceptor;

import com.spring.cloud.commonsecurity.tokenthread.TokenThreadLocal;
import feign.RequestInterceptor;
import feign.RequestTemplate;

/**
 * OpenFeign拦截器 将 TokenThreadLocal 中的token放到 requestTemplate的header中继续传递
 * 以为openfeign 的底层是 ribbon 的 restTemplate 传递的
 */
public class FeignInterceptor implements RequestInterceptor {


    @Override
    public void apply(RequestTemplate requestTemplate) {
        //获取线程变量
        String token = TokenThreadLocal.get().getToken();
        //在调用时,将认证信息添加到请求头中
        requestTemplate.header("token",token);
    }
}
